home *** CD-ROM | disk | FTP | other *** search
Wrap
var gYBLoginWindow = null; var gYBCreateWindow = null; var _ybookmark_options_inited = false; var YBobservService = Components.classes["@mozilla.org/observer-service;1"]. getService( Components.interfaces.nsIObserverService); var gKeyMapChanged = false; var YBcookieObserver = { observe: function(subject, topic, data ) { if (data == "added" || data == "changed" || data == "deleted" || data=="loggedin" ) { try { if (gYBLoginWindow) { gYBLoginWindow.close(); gYBLoginWindow = null; } if (gYBCreateWindow) { gYBCreateWindow.close(); gYBCreateWindow = null; } if(ybookmarksUtils.getExtensionMode() == YB_EXTENSION_MODE_CLASSIC) { //ybookmarks_ClassicOptions_UpdateAccountUserId(); } else { ybookmarks_Options_UpdateAccountUserId(); } } catch ( e ) { // ignore exception } } } }; var YBSyncFinishObserver = { observe: function(subject, topic, data ) { if (topic == "ybookmark.syncDone" && (data == "all-done" || data == "sync-error" || data == "sync-aborted")) { ( document.getElementById( "desc_syncStatus" ) ).hidden = true; } } }; //This function pops up the restart dialog on keymap pref change. function toggleKepMapStatus() { if(gKeyMapChanged == true) { gKeyMapChanged = false; } else { gKeyMapChanged = true; //This is the variable hack to pass data between a dialog and its parent. //reqRestart dialog sets access _userSelection using window.opener._userSelection _userSelection = "cancel"; window.openDialog( "chrome://ybookmarks/content/reqRestart.xul", "reqRestart", "chrome,dialog,centerscreen,modal,resizable=no" ); if(_userSelection == "restart") { _userSelection = "cancel"; var prefWin = document.getElementById("ybookmarks_OptionsWindow"); //acceptDialog call stores all the preferences. if(prefWin) { setTimeout ( function() {prefWin.acceptDialog();ybookmarksUtils._quit(true); }, 0); } } } } function ybookmarks_InitClassicOptions() { try { //Hide standard tabs var hideList = [ "ybPrefBookmarksGeneralTab", "ybPrefBookmarksAdvancedTab", ]; for (el in hideList) { var elem = document.getElementById(hideList[el]); if(elem) { elem.hidden = true; } } //Show classic tab var elem = document.getElementById("ybPrefBookmarksClassicTab"); if(elem) { elem.hidden = false; } //Set focus on the correct tab var tab_box = document.getElementById("ybPrefBookmarksTabBox"); var classicTab = document.getElementById("ybPrefBookmarksClassicTab"); var classicPanel = document.getElementById("ybPrefClassicTabPanel"); tab_box.selectedTab = classicTab; tab_box.selectedPanel = classicPanel; /* var serviceName = deliciousService.getServiceName(); var strings = document.getElementById( "ybookmarks-option-strings" ); var createDesc = document.getElementById( "ybookmarks-account-create-classic" ); createDesc.setAttribute( "value", strings.getString( "extensions.ybookmarks.create" ) ); YBobservService.addObserver( YBcookieObserver, "ybookmark.userChanged", false ); ybookmarks_ClassicOptions_UpdateAccountUserId(); document.getElementById ( "ybookmarks-account-login-classic" ).addEventListener ( "click", yb_options_openLoginWindow, false ); document.getElementById ( "ybookmarks-account-create-classic" ).addEventListener ( "click", yb_options_openCreateUserWindow, false ); window.addEventListener("unload", ybookmarks_CleanupOptions, false); */ _ybookmark_options_inited = true; } catch(e) { yDebug.print("ybookmarks_InitClassicOptions()" + e ); } } /* * This function gets called on prefpane's onload. */ function ybookmarks_InitOptions() { try { if(ybookmarksUtils.getExtensionMode() == YB_EXTENSION_MODE_CLASSIC) { ybookmarks_InitClassicOptions(); return; } var serviceName = deliciousService.getServiceName(); var strings = document.getElementById( "ybookmarks-option-strings" ); //var accountDesc = document.getElementById( "ybookmarks-account-desc" ); var createDesc = document.getElementById( "ybookmarks-account-create" ); /* ybookmarks_removeAllChildren ( accountDesc );*/ /*accountDesc.appendChild ( document.createTextNode ( bundle.getString( descKey ) ) ); */ createDesc.setAttribute ( "value", strings.getString( "extensions.ybookmarks.create" ) ); YBobservService.addObserver( YBcookieObserver, "ybookmark.userChanged", false ); YBobservService.addObserver( YBSyncFinishObserver, "ybookmark.syncDone", false ); // update the username in options ybookmarks_Options_UpdateAccountUserId(); //Disable the switch mode buttton. var pref = Components.classes["@mozilla.org/preferences-service;1"]. getService(Components.interfaces.nsIPrefBranch); try { var modeChange = pref.getCharPref("extensions.ybookmarks@yahoo.engine.set.mode"); if(modeChange == YB_EXTENSION_MODE_CLASSIC) { var switchButton = document.getElementById("btn_classic_mode"); switchButton.disabled = true; } } catch(e) {} document.getElementById ( "ybookmarks-account-login" ).addEventListener ( "click", yb_options_openLoginWindow, false ); document.getElementById ( "ybookmarks-account-create" ).addEventListener ( "click", yb_options_openCreateUserWindow, false ); window.addEventListener("unload", ybookmarks_CleanupOptions, false); var prefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); var debug = false; try { debug = prefs.getBoolPref("extensions.ybookmarks@yahoo.debug"); } catch (e) {} if (debug) { var toolbarTab = document.getElementById("ybPrefBookmarksToolbarTab"); var debugTab = document.getElementById("ybPrefBookmarksDebugTab"); toolbarTab.hidden = false; debugTab.hidden = false; } ybookmarks_Options_onTagsViewOverflowEnable(document.getElementById("pref-ybookmarks-tagsview-overflow-enable-checkbox")); ybookmarks_Options_onOriginalUIHide(document.getElementById("pref-ybookmarks-original-ui-hide-checkbox")); //Hack for Leopard bug : crash on hiding bookmarks menu. if(ybookmarksUtils.isOSXLeopard()) { document.getElementById("pref-ybookmarks-original-ui-hide-checkbox").hidden = true; document.getElementById("pref-ybookmarks-original-keybindings-remap-checkbox").hidden = true; document.getElementById("pref-ybookmarks-original-keybindings-remap-checkbox-leopard").hidden = false; } _ybookmark_options_inited = true; } catch (e) { yDebug.print("ybookmarks_InitOptions()" + e ); } } function ybookmarks_Options_UpdateAccountUserId() { try { var strings = document.getElementById( "ybookmarks-option-strings" ); var login = document.getElementById( "ybookmarks-account-login" ); var userPre = document.getElementById("ybookmarks-account-user-pre"); var userPost = document.getElementById("ybookmarks-account-user-post"); var user = document.getElementById("ybookmarks-account-user"); var username = deliciousService.getUserName(); var loginString; if ( username == null ) { loginString = strings.getString("extensions.ybookmarks.login"); userPre.hidden = true; userPost.hidden = true; user.hidden = true; var syncButton1 = document.getElementById("btn_syncLink"); syncButton1.setAttribute("disabled","true"); /* var bundle = document.getElementById( "ybookmarks-option-strings" ); username = bundle.getString( "extensions.ybookmarks.not.logged.in" ); */ } else { var userPreString = strings.getString("extensions.ybookmarks.user.pre"); var userPostString = strings.getString("extensions.ybookmarks.user.post"); userPre.hidden = false; var syncButton1 = document.getElementById("btn_syncLink"); syncButton1.setAttribute("disabled","false"); userPost.hidden = false; user.hidden = false; user.setAttribute("value", username); user.setAttribute("onclick", "ybookmarksUtils.openLinkToNewTab(deliciousService.getUrl('"+username+"'))"); userPre.setAttribute("value", userPreString); userPost.setAttribute("value", userPostString); loginString = strings.getString("extensions.ybookmarks.login.diff"); } login.setAttribute ("value", loginString); var currentUser = document.getElementById( "ybookmarks-account-user" ); ybookmarks_removeAllChildren( currentUser ); currentUser.appendChild(document.createTextNode(loginString)); /* var userKey = "extensions.ybookmarks." + deliciousService.getServiceName() + ".user"; currentUser.appendChild ( document.createTextNode ( bundle.getFormattedString( userKey, [ username ] ) ) );*/ } catch (e) { yDebug.print("ybookmarks_Options_UpdateAccountUserId:*******************" + e); } } function ybookmarks_ClassicOptions_UpdateAccountUserId() { try { var strings = document.getElementById( "ybookmarks-option-strings" ); var login = document.getElementById( "ybookmarks-account-login-classic" ); var userPre = document.getElementById("ybookmarks-account-user-pre-classic"); var userPost = document.getElementById("ybookmarks-account-user-post-classic"); var user = document.getElementById("ybookmarks-account-user-classic"); var username = deliciousService.getUserName(); var loginString; if ( username == null ) { loginString = strings.getString("extensions.ybookmarks.login"); userPre.hidden = true; userPost.hidden = true; user.hidden = true; login.hidden = false; } else { var userPreString = strings.getString("extensions.ybookmarks.user.pre"); var userPostString = strings.getString("extensions.ybookmarks.user.post"); userPre.hidden = false; userPost.hidden = false; user.hidden = false; user.setAttribute("value", username); user.setAttribute("onclick", "ybookmarksUtils.openLinkToNewTab(deliciousService.getUrl('"+username+"'))"); userPre.setAttribute("value", userPreString); userPost.setAttribute("value", userPostString); loginString = strings.getString("extensions.ybookmarks.login.diff"); } login.setAttribute ("value", loginString); var currentUser = document.getElementById( "ybookmarks-account-user-classic" ); ybookmarks_removeAllChildren( currentUser ); currentUser.appendChild(document.createTextNode(loginString)); } catch (e) { yDebug.print("ybookmarks_ClassicOptions_UpdateAccountUserId:*******************" + e); } } function ybookmarks_CleanupOptions() { // remove try { YBobservService.removeObserver( YBcookieObserver, "ybookmark.userChanged" ); } catch ( e ) { // ignore exception } try { YBobservService.removeObserver( YBSyncFinishObserver, "ybookmark.syncDone" ); } catch ( e ) { // ignore exception } if (gYBLoginWindow) { gYBLoginWindow.close(); gYBLoginWindow = null; } if (gYBCreateWindow) { gYBCreateWindow.close(); gYBCreateWindow = null; } if(ybookmarksUtils.getExtensionMode() == YB_EXTENSION_MODE_CLASSIC) { document.getElementById ( "ybookmarks-account-login-classic" ).removeEventListener ( "click", yb_options_openLoginWindow, false ); document.getElementById ( "ybookmarks-account-create-classic" ).removeEventListener ( "click", yb_options_openCreateUserWindow, false ); } else { document.getElementById ( "ybookmarks-account-login" ).removeEventListener ( "click", yb_options_openLoginWindow, false ); document.getElementById ( "ybookmarks-account-create" ).removeEventListener ( "click", yb_options_openCreateUserWindow, false ); } YBobservService = null; } function ybookmarks_removeAllChildren(node) { while ( node.firstChild ) { node.removeChild ( node.firstChild ); } } function yb_options_openLoginWindow() { if (gYBLoginWindow && gYBLoginWindow.closed) { gYBLoginWindow = null; } if (!gYBLoginWindow) gYBLoginWindow = ybookmarksUtils.openWindow ( deliciousService.getLoginUrl(), "Login into Social bookmarking service", 900, 600 ); else { gYBLoginWindow.location.href = deliciousService.getLoginUrl(); } gYBLoginWindow.focus(); } function yb_options_openCreateUserWindow() { if (gYBCreateWindow && gYBCreateWindow.closed) { gYBCreateWindow = null; } if (!gYBCreateWindow) gYBCreateWindow = ybookmarksUtils.openWindow ( deliciousService.getCreateUserUrl(), "Create New User", 810, 600 ); else { gYBCreateWindow.location.href = deliciousService.getCreateUserUrl(); } gYBCreateWindow.focus(); } function ybookmarks_forceRefresh() { YBobservService.notifyObservers(null, "ybookmark.forceRefresh", ""); ( document.getElementById( "desc_syncStatus" ) ).hidden = false; } function ybookmarks_sync() { var syncService = Components.classes["@mozilla.org/ybookmarks-sync-service;1"]. getService(Components.interfaces.nsIYBookmarkSyncService); syncService.sync(false); } function ybookmarks_Options_showHelpPage() { window.close(); ybookmarksUtils.openLinkToNewTab( deliciousService.getUrl("help"), "current" ); } function ybookmarks_Options_openLog() { window.close(); var dirService = ( Components.classes[ "@mozilla.org/file/directory_service;1" ] ).getService( Components.interfaces.nsIProperties ); var logFile = dirService.get( "ProfD", Components.interfaces.nsILocalFile ); logFile.append( "ybookmarks@yahoo.log" ); openUILinkIn( "file://" + logFile.path, "tab" ); } function ybookmarks_Options_onTagsViewOverflowEnable(enabled) { var elmts = ["pref-ybookmarks-tagsview-overflow-removefromtoplevel-checkbox", "pref-ybookmarks-tagsview-overflow-level-box", "pref-ybookmarks-tagsview-overflow-level-label", "pref-ybookmarks-tagsview-overflow-spillover-max-box", "pref-ybookmarks-tagsview-overflow-spillover-max-label", "pref-ybookmarks-tagsview-overflow-spillover-minsize-box", "pref-ybookmarks-tagsview-overflow-spillover-minsize-label"]; for (var i=0; i < elmts.length; i++) { document.getElementById(elmts[i]).disabled = !enabled.checked; } } function ybookmarks_Options_overflowOnRestoreDefaults() { var prefs = ["pref-ybookmarks-tagsview-overflow-enable", "pref-ybookmarks-tagsview-overflow-removefromtoplevel", "pref-ybookmarks-tagsview-overflow-level", "pref-ybookmarks-tagsview-overflow-spillover-max", "pref-ybookmarks-tagsview-overflow-spillover-minsize"]; for (var i=0; i < prefs.length; i++) { var pref = document.getElementById(prefs[i]); if (pref.hasUserValue) { pref.reset(); } } ybookmarks_Options_onTagsViewOverflowEnable(document.getElementById("pref-ybookmarks-tagsview-overflow-enable-checkbox")); }; function ybookmarks_Options_onOriginalUIHide(hide) { document.getElementById("pref-ybookmarks-original-keybindings-remap-checkbox").disabled = hide.checked; } function showEnableTagometerDialog(){ var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); var strings = document.getElementById( "ybookmarks-option-strings" ); var dialogTitleStr=strings.getString("extensions.ybookmarks.statusbaricons.tagometer.dialogTitle"); var dialogInfoStr=strings.getString("extensions.ybookmarks.statusbaricons.tagometer.dialogInfo"); var enableButtonStr=strings.getString("extensions.ybookmarks.statusbaricons.tagometer.dialogButton1"); var disableButtonStr=strings.getString("extensions.ybookmarks.statusbaricons.tagometer.dialogButton2"); // set the buttons that will appear on the dialog. It should be a set of constants multiplied by button position constants. In this case, 2 buttons appear. var flags=promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0 + promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_1; // Display the dialog box. The flags set above are passed as the fourth argument. // The next three arguments are custom labels used for the buttons, which are used if BUTTON_TITLE_IS_STRING is assigned to a particular button. // The last two arguments are for an optional check box. var button_number = promptService.confirmEx(window,dialogTitleStr, dialogInfoStr,flags,enableButtonStr,disableButtonStr,null, null, {}); return button_number; } function confirmEnableTagometer() { var prefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); var tagometerCheckbox = document.getElementById("pref-ybookmarks-statusbaricons-includetagometer-checkbox"); var checkedTagometer = tagometerCheckbox.getAttribute("checked"); if (checkedTagometer=="true") {// tagometer was not checked, user checks the tagometer var button_number = showEnableTagometerDialog(); if(button_number == 1) { // user selected the disable tagometer button tagometerCheckbox.setAttribute("checked","false"); } } } function showEnableCookiesDialog(){ var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] .getService(Components.interfaces.nsIPromptService); var strings = document.getElementById( "ybookmarks-option-strings" ); var dialogTitleStr=strings.getString("extensions.ybookmarks.cookies.dialogTitle"); var dialogInfoStr=strings.getString("extensions.ybookmarks.cookies.dialogInfo"); var enableButtonStr=strings.getString("extensions.ybookmarks.cookies.dialogButton1"); var disableButtonStr=strings.getString("extensions.ybookmarks.cookies.dialogButton2"); // set the buttons that will appear on the dialog. It should be a set of constants multiplied by button position constants. In this case, 2 buttons appear. var flags=promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0 + promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_1; // Display the dialog box. The flags set above are passed as the fourth argument. // The next three arguments are custom labels used for the buttons, which are used if BUTTON_TITLE_IS_STRING is assigned to a particular button. // The last two arguments are for an optional check box. var button_number = promptService.confirmEx(window,dialogTitleStr, dialogInfoStr,flags,enableButtonStr,disableButtonStr,null, null, {}); return button_number; } function confirmEnableCookies() { var prefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); var pm = Components.classes["@mozilla.org/permissionmanager;1"] .getService(Components.interfaces.nsIPermissionManager); //get current pref of cookies. var cookiePref = prefs.getIntPref("network.cookie.cookieBehavior"); var prefDomain = ybookmarksUtils.getPrefDomain(); prefDomain = prefDomain.substring(1, prefDomain.length); if (cookiePref == 2) { // This section is entered if cookies are disabled /** * check if domain is added as exception from permission manager */ var exceptionFound = false; var enumerator = pm.enumerator; while (enumerator.hasMoreElements()) { var nextPermission = enumerator.getNext().QueryInterface(Components.interfaces.nsIPermission); if(nextPermission.host == prefDomain && nextPermission.type == "cookie") { exceptionFound = nextPermission.host; break; } } if(exceptionFound) return; /** * show enable cookie dialog */ var button_number = showEnableCookiesDialog(); if(button_number == 0) { // user selected the "Enable Cookies" button prefs.setIntPref("network.cookie.cookieBehavior","0"); } } }